package com.quique.pfc.activities;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

import com.quique.pfc.R;
import com.quique.pfc.utils.Constantes;

/** Pantalla que mostrara la pagina de ayuda de moodle en la aplicacion.
 * Implementara sus propios controles web */
public class AyudaActivity extends Activity{
	/** Layout que contiene la web que se esta visualizando en la Activity */
	WebView mWebView;
	/** Promp para mostrar al usuario. */
	AlertDialog alertDialog;
	/** Metodo que se ejecuta al crear la Activity */
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);		
		configurarVista(); 
	}
	/** Inicializa los eleentos de la vista y comportamiento de los
	 * botones.*/
	private void configurarVista()
	{
		super.setContentView(R.layout.ayuda);
		//evitamos que se ponga la pantalla en horizontal
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
		//comportamiento del boton que vuelve al menu principal
        final Button button = (Button) findViewById(R.id.boton_volver_ayuda);
        //botones de navegacion
        final Button atrasButton = (Button) findViewById(R.id.boton_ayuda_atras);
        final Button adelanteButton = (Button) findViewById(R.id.boton_ayuda_adelante);
        final Button reloadButton = (Button) findViewById(R.id.boton_ayuda_reload);
        final Button navegadorButton = (Button) findViewById(R.id.boton_ayuda_navegador);
        //cuando se pulse el boton volver, finalizamos la Activity y 
        //volvemos al menu principal
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) 
            {
            	//vamos al main_activity
            	Intent i = new Intent(
            			AyudaActivity.this,
						PrincipalActivity.class);
				
				i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
				i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
				startActivity(i);
            }
        });
        /*
         * Los botones atras, adelante y refrescar se implementaran
         * haciendo uso de los metodos del WebView: goBack, goForward
         * y reload.
         */
        atrasButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) 
            { mWebView.goBack(); }
        });
        adelanteButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) 
            {
            	mWebView.goForward();
            }
        });
        reloadButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) 
            {
            	mWebView.reload();
            }
        });
        //boton para la pagina en el navegador
        navegadorButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) 
            {
            	//creamos un nuevo dialog para mostrarle las opciones al usuario
            	alertDialog = new AlertDialog.Builder(AyudaActivity.this).create();
            	alertDialog.setTitle(getString(R.string.ayuda_moodle));
            	alertDialog.setMessage(getString(R.string.que_hacer));
            	alertDialog.setButton(getString(R.string.ver_navegador), new DialogInterface.OnClickListener() {
            	      public void onClick(DialogInterface dialog, int which) {
            	 
            	    	  //creamos una nueva peticion (Intent)
            	    	  //del tipo ACTION_VIEW (navegador)
            	    	  //y como parametro (setData)
            	    	  //le pasamos la URL que queremos abrir.
            	    	  final String url = mWebView.getUrl();
            	    	  Intent i = new Intent(Intent.ACTION_VIEW);
            	    	  i.setData(Uri.parse(url));
            	    	  startActivity(i);
            	 
            	    } });
            
            	//cancelar: cerramos el dialog
            	alertDialog.setButton2(getString(R.string.cancelar), new DialogInterface.OnClickListener() {
            	      public void onClick(DialogInterface dialog, int which) {
            	 
            	       alertDialog.cancel();
            	 
            	    } });
            	alertDialog.setIcon(R.drawable.ico_navegador);
            	alertDialog.show();
            	return;
            }
        });
        
        //Establecemos la URL para el control WebView
        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl(Constantes.Urls.AYUDA_MOODLE);
        mWebView.setWebViewClient(new AyudaWebViewClient());
        
	}
	
	/**
	 * Re-implementamos el metodo onKeyDown de la Activity
	 * para poder deshabilitar la pulsacion de la tecla
	 * 'menu', ya que si esta cargado un WebView se 
	 * abririan las opciones de navegacion del telefono. 
	 */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    {
    	if (keyCode == KeyEvent.KEYCODE_MENU) {
            return true;
        }
        else
            return super.onKeyDown(keyCode, event);
    }
	
	
	private class AyudaWebViewClient extends WebViewClient {
	    @Override
	    public boolean shouldOverrideUrlLoading(WebView view, String url) {
	        view.loadUrl(url);
	        return true;
	    }
	}
	
	@Override
	public void onBackPressed()
	{
		//vamos al main_activity
    	Intent i = new Intent(
    			AyudaActivity.this,
				PrincipalActivity.class);
		
		i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
		startActivity(i);
	}
	
}

